package com.hqully.smartfumehood.mapper;

import com.github.pagehelper.PageInfo;
import com.hqully.smartfumehood.entity.LabManager;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *     针对数据库表[lab_manager]的操作
 * </p>
 * @entity {@link LabManager}
 * @author liulingyu <br>
 * @date 2022-05-12 11:03 <br>
 * @version 1.0
 */
@Mapper
public interface LabManagerMapper extends BaseMapper<LabManager> {

    /**
     * <p>
     *     根据[queryVo]的参数条件查询实验室管理员
     * </p>
     * @date 2022/5/8 12:52 <br>
     * @author liulingyu <br>
     * @param query 查询参数
     * @return {@link PageInfo < LabManager>} 实验室管理员列表
     */
    public List<LabManager> findAllLabManager(Map query);

    /**
     * <p>
     *     根据单位ID查询实验室管理员
     * </p>
     * @deprecated 该功能已整合至{@link #findAllLabManager} <br>
     * @date 2022/5/8 12:53 <br>
     * @author liulingyu <br>
     * @param queryVo 查询参数
     * @return {@link PageInfo< LabManager>} 管理员列表
     */
    public List<LabManager> findLabManagerByUnit(@Param("unit") String unit);


    /**
     * <p>
     *     根据[lid]查询实验室管理员
     * </p>
     * @deprecated 该功能已整合至{@link #findAllLabManager}
     * @date 2022/5/8 12:54 <br>
     * @author liulingyu <br>
     * @param lid 管理员ID
     * @return {@link LabManager} 实验室管理员实体类
     */
    public LabManager findLabManagerByLid(@Param("id") String lid);

    /**
     * <p>
     *     根据[phone]查询实验室管理员
     * </p>
     * @deprecated 该功能已整合至{@link #findAllLabManager}
     * @date 2022/5/8 12:54 <br>
     * @author liulingyu <br>
     * @param phone 管理员手机号
     * @return {@link LabManager} 实验室管理员实体类
     */
    public LabManager findLabManagerByPhone(@Param("phone") String phone);


    /**
     * <p>
     *     根据[unitId]的参数条件查询实验室管理员ID
     * </p>
     * @date 2022/5/8 15:19 <br>
     * @author liulingyu <br>
     * @param unitId 单位ID
     * @return {@link List< Integer>} 实验室管理员ID列表
     */
    public List<Integer> findLabManagerIdByUnitId(@Param("unitId") long unitId);


    /**
     * <p>
     *     添加实验室管理员
     * </p>
     * @date 2022/5/8 12:55 <br>
     * @author liulingyu <br>
     * @param labManager 实验室管理员实体类
     * @return {@link int}
     */
    public int addLabManager(LabManager labManager);

    /**
     * <p>
     *     通过实验室管理员ID删除实验室管理员
     * </p>
     * @date 2022/5/8 12:56 <br>
     * @author liulingyu <br>
     * @param lid 实验室管理员ID
     * @return {@link int}
     */
    public int deleteLabManager(@Param("id") String lid);

    /**
     * <p>
     *     更新实验室管理员
     * </p>
     * @date 2022/5/8 12:59 <br>
     * @author liulingyu <br>
     * @param labManager 实验室管理员实体类
     * @return {@link int}
     */
    public int updateLabManager(LabManager labManager);




}
